<?php

  /*
    登录 - 后端逻辑
      1. 接收到前端传递来的数据
        => 接受前端传递的 username
        => 接受前端传递的 password
        => 区分 GET 还是 POST 请求

      2. 验证 用户名 和 密码 是否正确
        => 空着

      3. 把验证结果返回给前端
        => 如果用户名密码对, 就返回正确
        => 如果用户名密码错, 就返回错误
  */

  /*
    如何接受前端的请求
      + 在 PHP 内有两个天生的关联型数组
        => $_GET
        => $_POST
        => 存储的就是前端携带过来的数据
      + 例子: 前端以 GET 方式发来请求, ?username=Jack&password=123456
        => $_GET 就是一个数组 [ "username" => "Jack", "password" => "123456" ]
      + 例子: 前端以 POST 方式发来请求, username=Jack&password=123456
        => $_POST 就是一个数组 [ "username" => "Jack", "password" => "123456" ]
  */

  // 1. 如何接受参数
  $username = $_POST['username'];
  $password = $_POST['password'];

  // 2. 验证
  // 去数据库进行比对
  // 2-1. 建立连接
  $link = mysqli_connect('localhost', 'root', 'root', 'taobao');

  // 2-2. 操作数据库查询
  $sql = "SELECT * FROM `login` WHERE `username`='$username' AND `password`='$password'";
  $res = mysqli_query($link, $sql);

  // 2-3. 解析结果
  $data = mysqli_fetch_all($res, MYSQLI_ASSOC);

  // 2-4. 关闭连接
  mysqli_close($link);

  // 问题: 如何判断登录成功还是失败 ?
  // $data 内如果有数据, 表示登录成功
  // $data 内如果是一个空数组, 表示登录失败
  // 问题: 如何获取数组的长度 ?
  // 语法: count(数组)
  // 返回值: 一个数字
  if (count($data)) {
    // 表示有长度
    $arr = [
      "message" => "登录成功",
      "code" => 1,
      "info" => $data
    ];
  } else {
    // 表示没有长度
    $arr = [
      "message" => "登录失败",
      "code" => 0,
      "info" => $data
    ];
  }

  // 代码能来到这里, 已经有了一个结果
  // 3. 只要把结果返回给前端就可以了
  // 注意, 把 php 的数据转换成 json 格式返回
  echo json_encode($arr);
?>
